import request from '@/utils/request'

/**
 * BasicEquips 产品基础数据 API 服务
 */
export const basicEquipApi = {
  /**
   * 创建产品
   * @param {Object} productData - 产品数据
   * @returns {Promise} API响应
   */
  createEquip: (productData) => {
    return request.post('/basic-equips/create', productData)
  },

  /**
   * 更新产品
   * @param {number} id - 产品ID
   * @param {Object} productData - 产品数据
   * @returns {Promise} API响应
   */
  updateEquip: (id, productData) => {
    return request.post(`/basic-equips/modify`, productData)
  },

  /**
   * 删除产品
   * @param {number} id - 产品ID
   * @returns {Promise} API响应
   */
  deleteEquip: (id) => {
    return request.get(`/basic-equips/del/${id}`)
  },

  /**
   * 根据ID获取产品
   * @param {number} id - 产品ID
   * @returns {Promise} API响应
   */
  getEquipsById: (id) => {
    return request.get(`/basic-equips/${id}`)
  },

  /**
   * 获取所有产品
   * @returns {Promise} API响应
   */
  getAllEquipss: () => {
    return request.get('/basic-equips')
  },

  /**
   * 分页查询产品
   * @param {Object} params - 查询参数
   * @param {number} params.page - 页码
   * @param {number} params.size - 每页大小
   * @param {string} params.productId - 产品编号
   * @param {string} params.productName - 产品名称
   * @returns {Promise} API响应
   */
  getEquipssPage: (params) => {
    return request.get('/basic-equips/page', { params })
  },

  /**
   * 条件查询产品
   * @param {Object} searchParams - 搜索参数
   * @param {string} searchParams.productId - 产品编号
   * @param {string} searchParams.productName - 产品名称
   * @param {number} searchParams.page - 页码
   * @param {number} searchParams.size - 每页大小
   * @returns {Promise} API响应
   */
  searchEquipss: (searchParams) => {
    return request.get('/api/basic-equips/search', { params: searchParams })
  },

  /**
   * 查询当前租户的产品列表 (带搜索条件)
   * @param {Object} params - 查询参数
   * @param {string} params.productName - 产品名称
   * @param {string} params.productCode - 产品编号
   * @param {string} params.category - 产品类别
   * @param {string} params.priority - 优先级
   * @param {string} params.status - 状态
   * @returns {Promise} API响应
   */
  getEquipsByCurrentTenant: (params = {}) => {
    return request.get('/basic-equips/current-tenant', { params })
  },

  /**
   * 根据订单查询对应的设备
   * 通过订单关联的产品工序查找对应的设备
   * @param {Array} orders - 订单数据列表
   * @returns {Promise} API响应
   */
  getEquipsByOrders: (orders) => {
    return request.post('/basic-equips/getEquiptsByOrders', orders)
  }
}

export default basicEquipApi
